import type { PageParam, PageResult } from '@vben/request';
import type { Dayjs } from 'dayjs';

import { requestClient } from '#/api/request';

export namespace InventoryApi {
    /** 库存管理信息 */
  export interface Inventory {
            id: number; // 主键ID
            productCode?: string; // 商品编码
            productName?: string; // 商品名称
            category?: string; // 商品分类
            subCategory: string; // 子分类
            unit?: string; // 单位
            currentStock?: number; // 当前库存
            minStock?: number; // 最低库存
            maxStock?: number; // 最高库存
            unitPrice?: number; // 单价
            costPrice: number; // 成本价
            supplier: string; // 供应商
            supplierContact: string; // 供应商联系方式
            expiryDate: string | Dayjs; // 过期日期
            status?: string; // 商品状态
      }
}

/** 查询库存管理分页 */
export function getInventoryPage(params: PageParam) {
  return requestClient.get<PageResult<InventoryApi.Inventory>>('/spa/inventory/page', { params });
}

/** 查询库存管理详情 */
export function getInventory(id: number) {
  return requestClient.get<InventoryApi.Inventory>(`/spa/inventory/get?id=${id}`);
}

/** 新增库存管理 */
export function createInventory(data: InventoryApi.Inventory) {
  return requestClient.post('/spa/inventory/create', data);
}

/** 修改库存管理 */
export function updateInventory(data: InventoryApi.Inventory) {
  return requestClient.put('/spa/inventory/update', data);
}

/** 删除库存管理 */
export function deleteInventory(id: number) {
  return requestClient.delete(`/spa/inventory/delete?id=${id}`);
}

/** 批量删除库存管理 */
export function deleteInventoryList(ids: number[]) {
  return requestClient.delete(`/spa/inventory/delete-list?ids=${ids.join(',')}`)
}

/** 导出库存管理 */
export function exportInventory(params: any) {
  return requestClient.download('/spa/inventory/export-excel', params);
}

